package com.twotwoshop.service.order.service;



import com.twotwoshop.domin.common.dtos.ResponseResult;
import com.twotwoshop.domin.order.dtos.OrderDto;
import com.twotwoshop.domin.order.dtos.OrderFindDto;

public interface OrderService {



    /**
     * 下单
     * @return
     */
    ResponseResult downOrder(OrderDto orderDto);



    /**
     * 获取订单列表
     * @return
     */
    ResponseResult getOrderList(OrderFindDto orderFindDto);


    /**
     * 取消订单
     * @param id
     * @return
     */
    ResponseResult cancelOrder(Long id);


    /**
     * 删除订单
     * @param id
     * @return
     */
    ResponseResult deleteOrder(Long id);


    /**
     *  支付
     * @param id
     * @return
     */
    ResponseResult payOrder(Long id);


    /**
     * 查询我的卖出
     * @return
     */
    ResponseResult mySoldOrder(OrderFindDto orderFindDto);


    /**
     * 发货
     * @param id
     * @return
     */
    ResponseResult shipOrder(Long id);


    /**
     * 确认收货
     * @param id
     * @return
     */
    ResponseResult confirmOrder(Long id);


    /**
     * 买家申请退款
     * @param id
     * @return
     */
    ResponseResult refundOrder(Long id);


    /**
     * 卖家同意退款
     * @param id
     * @return
     */
    ResponseResult refundAgreeOrder(Long id);


    /**
     * 卖家拒绝退款
     * @param id
     * @return
     */
    ResponseResult refundRejectOrder(Long id);



    /**
     * 生成下单令牌
     */
    ResponseResult generateOrderToken();
}
